console.log('users.js 已加载并执行。');
// 获取当前登录用户ID
const loggedInUserId = document.getElementById('currentUserId')?.value;
console.log('当前登录用户ID:', loggedInUserId);

// 当前正在操作的用户ID和用户名
let currentUserId = null;
let currentUsername = null;

// 获取 CSRF 令牌
function getCsrfToken() {
    const token = document.querySelector('meta[name="_csrf"]').getAttribute('content');
    const header = document.querySelector('meta[name="_csrf_header"]').getAttribute('content');
    return { token, header };
}

// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
    console.log('页面加载完成，正在初始化事件监听器');
    
    // 修改身份按钮点击事件
    document.querySelectorAll('.change-role-btn').forEach(button => {
        button.addEventListener('click', function() {
            const userId = this.getAttribute('data-user-id');
            const username = this.getAttribute('data-username');
            const currentRole = this.getAttribute('data-current-role');
            console.log('点击修改身份按钮 - 用户ID:', userId, '用户名:', username, '当前角色:', currentRole);
            
            if (userId === loggedInUserId) {
                console.log('不能修改自己的角色');
                alert('您不能修改自己的角色！');
                return;
            }
            
            changeUserRole(userId, username, currentRole);
        });
    });

    // 删除用户按钮点击事件
    document.querySelectorAll('.delete-user-btn').forEach(button => {
        button.addEventListener('click', function() {
            const userId = this.getAttribute('data-user-id');
            const username = this.getAttribute('data-username');
            console.log('点击删除用户按钮 - 用户ID:', userId, '用户名:', username);
            
            if (userId === loggedInUserId) {
                console.log('不能删除自己的账户');
                alert('您不能删除自己的账户！');
                return;
            }
            
            if (confirm(`确定要删除用户 ${username} 吗？此操作不可恢复！`)) {
                deleteUser(userId, username);
            }
        });
    });
});

// 修改用户身份
function changeUserRole(userId, username, currentRole) {
    console.log('正在修改用户身份 - 用户ID:', userId, '用户名:', username, '当前角色:', currentRole);
    currentUserId = userId;
    currentUsername = username;
    
    // 更新模态框中的用户名
    document.getElementById('changeRoleUsername').textContent = username;
    
    // 设置当前角色
    const roleSelect = document.getElementById('newRole');
    roleSelect.value = currentRole;
    
    // 显示模态框
    console.log('检查 bootstrap.Modal 是否定义:', typeof bootstrap !== 'undefined' && typeof bootstrap.Modal !== 'undefined');
    const modal = new bootstrap.Modal(document.getElementById('changeRoleModal'));
    console.log('changeRoleModal 实例已创建:', modal);
    modal.show();
    console.log('尝试显示 changeRoleModal');
}

// 确认修改身份
function confirmChangeRole() {
    const newRole = document.getElementById('newRole').value;
    console.log('确认修改身份 - 用户ID:', currentUserId, '新角色:', newRole);
    const csrf = getCsrfToken(); // 获取CSRF令牌
    
    fetch(`/users/${currentUserId}/role`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            [csrf.header]: csrf.token // 添加CSRF头
        },
        body: JSON.stringify({ role: newRole })
    })
    .then(response => {
        console.log('收到服务器响应:', response.status);
        if (!response.ok) {
            throw new Error('修改失败');
        }
        return response.json();
    })
    .then(data => {
        console.log('服务器返回数据:', data);
        if (data.success) {
            alert('修改成功！');
            location.reload(); // 刷新页面以显示更新后的数据
        } else {
            alert('修改失败：' + data.message);
        }
    })
    .catch(error => {
        console.error('修改身份时发生错误:', error);
        alert('修改失败：' + error.message);
    });
}

// 删除用户
function deleteUser(userId, username) {
    console.log('正在删除用户 - 用户ID:', userId, '用户名:', username);
    
    // 更新模态框中的用户名
    document.getElementById('deleteUsername').textContent = username;

    // 显示模态框
    console.log('检查 bootstrap.Modal 是否定义:', typeof bootstrap !== 'undefined' && typeof bootstrap.Modal !== 'undefined');
    const modal = new bootstrap.Modal(document.getElementById('deleteUserModal'));
    console.log('deleteUserModal 实例已创建:', modal);
    modal.show();
    console.log('尝试显示 deleteUserModal');
    
    // 如果需要确认删除，可以在这里添加一个confirm对话框
    // 确认删除用户
    function confirmDeleteUserActual() {
        const csrf = getCsrfToken(); // 获取CSRF令牌
        fetch(`/users/${userId}`, {
            method: 'DELETE',
            headers: {
                [csrf.header]: csrf.token // 添加CSRF头
            }
        })
        .then(response => {
            console.log('收到服务器响应:', response.status);
            if (!response.ok) {
                throw new Error('删除失败');
            }
            return response.json();
        })
        .then(data => {
            console.log('服务器返回数据:', data);
            if (data.success) {
                alert('删除成功！');
                location.reload(); // 刷新页面以显示更新后的数据
            } else {
                alert('删除失败：' + data.message);
            }
        })
        .catch(error => {
            console.error('删除用户时发生错误:', error);
            alert('删除失败：' + error.message);
        });
    }
    // 将确认删除逻辑绑定到模态框的确认按钮上
    document.getElementById('confirmDeleteBtn').onclick = confirmDeleteUserActual;
} 